package com.itheima.web.exception;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局异常处理类
 */
@ControllerAdvice   //声明此类是异常处理类
public class GlobalExceptionAdvice {

    /**
     *  前端和后台有规定
     *      ResponseEntity：可以封装状态值  和 响应的数据
     *      前后端 探花定死了一个返回的key message表示提示信息
     */
    //Business  业务异常（可预期异常）
    @ExceptionHandler(BusinessException.class)
    public ResponseEntity businessException(Exception e) {
        e.printStackTrace();//输出到控制台

        Map map = new HashMap<>();
        map.put("message", e.getMessage());//抛出的异常信息
        return ResponseEntity.status(500).body(map);//body  响应体
    }

    //其他异常（不可预期异常）
    @ExceptionHandler(Exception.class)
    public ResponseEntity otherException(Exception e) {
        e.printStackTrace();//输出到控制台

        Map map = new HashMap<>();
        map.put("message", "对不起，网络繁忙~请稍后再试");//抛出的异常信息
        return ResponseEntity.status(500).body(map);//body  响应体

    }

}
